//集中封装一些数据处理工具函数

// 将路由数据处理为 path:label格式数据
import { mainRoutes } from "@/router/index";

export const routesToMap = () => {
  let obj = {};
  function loop(arr) {
    arr.forEach((item) => {
      obj[item.path] = item.meta.label;
      if (item.children) {
        loop(item.children);
      }
    });
  }
  loop(mainRoutes);
  return obj;
};

//根据权限删减路由数据包
export const filterRoutes = (permission) => {
  function loop(arr) {
    for (let i = arr.length - 1; i >= 0; i--) {
      let perArr = permission.filter(
        (permit) => permit.indexOf(arr[i].path) != -1
      ); //当前路由路径是否包含在权限数据包中
      // /category/list
      if (!perArr.length) {
        arr.splice(i, 1);
      }
      if (arr[i] && arr[i].children) {
        loop(arr[i].children);
      }
    }
  }
  let routes = JSON.parse(JSON.stringify(mainRoutes)); //删减数据包的时候，不要影响mainRoutes
  loop(routes);
  return routes;
};
